Virtualization generally refers to a method of logically dividing system resources among a plurality of software applications. In a virtualized environment, one or more virtual machines are created. A virtual machine can operate like a computer system emulator and can execute a set of software instructions. Typically a virtual machine operates a software stack including a guest operating system, and one or more guest software applications running on top of the operating system. The guest operating system provides software frontend drivers that can communicate with backend drivers hosted in a hypervisor to access a set of physical resources. The hypervisor can also regulate the access of the physical resources by, for example, managing the access rights to the system resources, transporting access request and requested resources between the virtual machines and the system that provides the requested resources, etc.